package com.zpark.oop.day06;

/**
 * interface 接口：
 *      接口（英文：Interface），在JAVA编程语言中是一个抽象类型，是抽象方法的集合，
 * 接口通常以interface来声明。一个类通过实现（implements）接口的方式，从而来实现接
 * 口的抽象方法。
 *		接口并不是类，编写接口的方式和类很相似，但是它们属于不同的概念。类描述对象的属性和方
 * 法。接口则包含类要实现的方法。
 *		除非实现接口的类是抽象类，否则该类要定义接口中的所有方法。
 *		接口无法被实例化，但是可以被实现。一个实现接口的类，必须实现接口内所描述的所有方法，否
 * 则就必须声明为抽象类。另外，在 Java 中，接口类型可用来声明一个变量，他们可以成为一个空指针，或
 * 是被绑定在一个以此接口实现的对象。
 */
public interface InterFaceDemo01 {

    // 抽象类中的成员变量可以是各种类型的，而接口中的变量只能是 public static final 类型的
    public static final String NAME = "zpark";
    int AGE = 18;

    public abstract void eat();
    // 接口当中的方法只能说抽象方法，并且必须是public abstract修饰的
    void sleep();
    void run();
    void study();
    void work();
    public abstract void play();

    /**
     * 从JDK1.8开始，允许在接口当中定义类的普通方法
     */
    public static void show(){
        System.out.println("show");
    }

}
